package com.solution.admin.settings.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.admin.settings.dao.KeyMapDao;
import com.solution.admin.settings.entity.KeyMapEntity;
import com.solution.common.dao.impl.BaseDaoImpl;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 数据字典信息dao实现层
 * @author zhaieryuan
 * @date 2017年4月19日 下午2:32:37
 */
@Repository
public class KeyMapDaoImpl extends BaseDaoImpl<KeyMapEntity> implements KeyMapDao{

	/**
	 * 查询获取所有的数据字典信息
	 * @param param 查询参数
	 * @param map
	 * @return
	 * @author zhaieryuan
	 * @date 2017年4月19日 下午2:34:25
	 */
	@Override
	public List<KeyMapEntity> listKeyMap(Map<String, Object> param) {
		return super.listBy(param);
	}
	/**
	 * 接口使用，根据类型  根据值(经销商) 获取对应的 业务员角色 ID(固定值)
	 * @param param
	 * @return
	 * @author chenl
	 * @date 2017年5月13日 下午5:16:41
	 */
	@Override
	public List<KeyMapEntity> listByTypeAndKeyVal(Map<String, Object> param) {
		return getSessionTemplate().selectList("listByTypeAndKeyVal", param);
	}
	/**
	 * 添加驳回理由
	 * @param keyMap
	 * @return
	 * @author qiaoenyin
	 * @date 2017年5月8日 下午8:13:57
	 */
	@Override
	public long saveRejectReson(KeyMapEntity keyMap) {
		return  getSessionTemplate().insert(getStatement("saveRejectReson"), keyMap);
	}
	
	
	
	
	/**
	 * 根据主键删除
	 * @param id
	 * @return
	 * @author zhaieryuan
	 * @date 2017年5月8日 下午1:56:07
	 */
	@Override
	public int deleteById(String id) {
		return super.deleteById(Long.parseLong(id));
	}

	/**
	 * 新增保存
	 * @param record
	 * @return
	 * @author zhaieryuan
	 * @date 2017年5月8日 下午1:56:49
	 */
	@Override
	public long saveKeyMapEntity(KeyMapEntity record) {
		return super.insert(record);
	}

	/**
	 * 根据主键信息删除
	 * @param id
	 * @return
	 * @author zhaieryuan
	 * @date 2017年5月8日 下午1:57:03
	 */
	@Override
	public KeyMapEntity getById(String id) {
		return super.getById(Long.parseLong(id));
	}

	/**
	 * 编辑修改
	 * @param record
	 * @return
	 * @author zhaieryuan
	 * @date 2017年5月8日 下午1:57:20
	 */
	@Override
	public int modifyKeymap(KeyMapEntity record) {
		return super.update(record);
	}

	/**
	 * 
	 * @param pageParam
	 * @param paramMap
	 * @return
	 * @author zhaieryuan
	 * @date 2017年5月8日 下午1:57:32
	 */
	@Override
	public PageBean listKeyMapByPageBean(PageParam pageParam,
			Map<String, Object> paramMap) {
		return super.listPage(pageParam, paramMap,"selectKeyMapList","selectCount");
	}
	
	/**
	 * 根据keyType修改字典信息
	 * @param keyMap
	 * @return
	 * @author wangchuang
	 * @date 2017年7月24日 下午1:48:30
	 */
	@Override
	public int modifyKeyMapByKeyType(KeyMapEntity keyMapEntity) {
		return getSessionTemplate().update("modifyKeyMapByKeyType", keyMapEntity);
	}
	/**
	 * 根据keyType查字典信息
	 * @param string
	 * @return
	 * @author wangchuang
	 * @date 2017年7月25日 上午8:43:30
	 */
	@Override
	public KeyMapEntity getByType(String type) {
		return getSessionTemplate().selectOne("getByType", type);
	}
	
	/**
	 * 查询所有字典项
	 * @return
	 */
	public List<KeyMapEntity> listAllDict(){
		return getSessionTemplate().selectList(getStatement("listAllDict"));
	}

}
